1. Field of the Invention
The present invention relates to a method and system for queuing data access requests (DAR) according to a priority system.
2. Description of the Related Art
In current storage systems, a storage controller manages data transfer operations between a direct access storage device (DASD), which may be a string of hard disk drives or other non-volatile storage device(s), and host systems and their application programs. To execute a read operation presented from a host system, i.e., a data access request (DAR), the storage controller must physically access the data stored in tracks in the DASD. A DAR is a set of contiguous data sets, such as tracks, records, fixed blocks, or any other grouping of data. The process of physically rotating the disk in the DASD to the requested track then physically moving the reading unit to the disk section to read data is often a time consuming process. For this reason, current systems stage data into a cache memory of the storage controller in advance of the host requests for such data.
A storage controller typically includes a large buffer managed as a cache to buffer data accessed from the attached DASD. In this way, data access requests (DARs) can be serviced at electronic speeds directly from the cache thereby avoiding the electromechanical delays associated with reading the data from the DASD. Prior to receiving the actual DAR, the storage controller receives information on a sequence of tracks in the DASD involved in the upcoming read operation or that data is being accessed sequentially. The storage controller will then proceed to stage the sequential tracks into the cache. The storage controller would then process DARs by accessing the staged data in the cache. In this way, the storage controller can return cached data to a read request at the data transfer speed in the storage controller channels as opposed to non-cached data which is transferred at the speed of the DASD device.
A "hit" is a DAR that can be serviced from cache, whereas a "miss" occurs when the requested data is not in cache and must be retrieved from DASD. With the International Business Machines Corporation (IBM) 3990 Storage Controller, if a miss occurs, the storage controller disconnects from the channel and then accesses the DASD to retrieve the requested data. After retrieving the requested data from the DASD and storing the data in cache, the storage controller then reconnects to the channel and the requesting device, e.g., host, and returns the retrieved requested data. If there are multiple channel paths between a host and I/O device, then the storage controller can reconnect on any of the multiple channel paths to return the requested data to the I/O device. If retrieved data for multiple DARs are queued against a channel, then the storage controller typically uses a First-in-First-Out (FIFO) algorithm to determine which retrieved data request to return to the channel. Moreover, if there are multiple cache misses and multiple DARs are queued against a single I/O device or logical volume, then the storage controller typically uses a FIFO algorithm to execute queued DARs against the I/O device or logical volume. The servicing of DARs by a storage controller is described in IBM publication "Storage Subsystem Library: IBM 3990 Storage Control Reference (Models 1, 2, and 3)", IBM document no. GA32-0099-06, (IBM Copyright 1988, 1994), which publication is incorporated herein by reference in its entirety.
There is a need in the art for an improved method for processing DARs and returning DARs to a channel.